package com.fengkai.filepost.pdfoutstream.test.ODsolutions;

/**
 * @author Fengkai
 * @creat 2023/4/10
 * 新的工号系统由小写英文字母a-z和数字0-9两部分构成。新工号由一段英文字母开头。之后跟随一段数字，比如
 * aaahw0001,a12345,abcd1,a00.
 * 注意：新工号不能全为字母或数字，允许数字部分有前导0或者全为0。
 * 但是过长的工号会增加同事们的记忆成本，
 * 现在给出新工号至少需要分派的人数x
 * 和新工号中字母的长度y，
 * 求新工号中数字的最短长度z。
 * 输入
 * 一行两个非负整数x y,数字用单个空格分隔。
 * 0 < x <= 2^50-1
 * 0 < y <= 5
 * 输出描述
 * 输出新工号中数字的最短长度z
 */
public class NewJobId {

    public static void main (String[] args) {
        for (int i = 0; i < 500; i++) {
            String s = "";
            int v = (int) (Math.random() * (1 << 50 - 1) + 1);
            int k = (int) (Math.random() * 5 + 1);
            s = v + " " + k;
            if (getJobIdSize(s) != getJobIdSize(s)){
                System.out.println("error");
            }
        }

    }

    public static int getJobIdSize(String input){
        int x = Integer.parseInt(input.split(" ")[0]);
        int y = Integer.parseInt(input.split(" ")[1]);
        int z = 1;
        int totalCount = (int) Math.pow(26, y);
        while (totalCount < x){
            z ++;
            totalCount = totalCount*10;
        }

        return z;
    }

    public static int getJobIdLength(String input){
        // 处理输入
        String[] input_list = input.split("\\s+");
        long people_num = Long.parseLong(input_list[0]);
        int char_size = Integer.parseInt(input_list[1]);
        double total_char_num = Math.pow(26, (double)char_size);
        int z = 1;
        long total_number = (long)total_char_num * 10;
        while(total_number < people_num){
            z++;
            total_number *= 10;
        }
        System.out.println(z);
        return z;
    }

}
